3GPP UMTS and 3GPP2 cdma2000-1x EVDO (or EVDO herein after) standards specify the use of convolutional and/or turbo coding as an error correction method to protect the transmitted data between a base station, referred to as NodeB in UMTS terminology, and a mobile terminal, referred to as user equipment (UE) in UMTS terminology. A CRC code is also applied as a measure of error detection to detect errors that cannot be corrected by the convolutional or turbo decoder to guarantee the integrity of a data block before reporting it to the higher layer. The CRC is defined by its generating polynomial and the initial state of the CRC generator. The current 3GPP UMTS/3GPP2 EVDO standards specify the initial state for the CRC generator to be all ZEROs. When receiving conditions are weak, meaning that the received signal strength has become insufficient to support the radio-like normal operations, problems can arise through this selection of an initial state causing a false pass to be generated for a block of data when it should otherwise really be a fail due to the inaccuracy of a detected block of bits. This can happen when the UE is in a soft handoff mode when one or more radio links are significantly weaker than others, or when the UE temporarily goes into a deep fade, but will exit the fade before the network can disable the radio link.
In a receiver at either a NodeB or a UE, after a received Code Division Multiple Access (CDMA) signal is despread and demodulated, the output is a sequence of soft symbol metric values consisting of signed numeric values, which are inputted to either a convolutional decoder or a turbo decoder to determine the transmitted bit stream. In weak receiving conditions, each of the soft symbol metric values at the output of the demodulator are likely to have close to a zero value. In the convolutional decoder, in processing an input sequence of soft symbol metric values associated with a block of data, the likelihood of each possible transmitted bit sequence is calculated and the sequence with the largest likelihood is used to determine the transmitted sequence. When the received signal is weak and the soft symbol metric values are likely all close to a zero value, there is a high probability that multiple code sequences will have the same likelihood, which is also a maximum among all possible code sequences. Among these equal maximum likelihood sequences is always the all-ZERO sequence. The convolutional decoder picks the code sequence with the least weight so that in a weak signal condition, the all ZERO sequence is always chosen as having been the transmitted sequence. In the turbo decoder, in processing an input sequence of soft symbol metric values in a block of data, two likelihood values of each bit are calculated (one for bit value ZERO and the other for bit value ONE) and for each bit the bit value with the larger likelihood is outputted. When the received signal is weak and each soft symbol metric value is close to zero, there is a high probability that the two likelihood values for a bit are the same for all the bits in the data block. The decoder picks the bit value ZERO for each bit and thus produces an all-ZERO decoded bit stream for the block.
In weak signal conditions, therefore, both the convolutional decoder and the turbo decoder produce an all-ZERO output sequence resulting in an all ZERO decoded bit stream consisting of blocks that have an all-ZERO data part and an all-ZERO CRC part, regardless of what actually has been transmitted. When the initial state for the CRC recalculation at the receiver is set to all ZEROs, an inputted all-ZERO data part for the CRC recalculation results in an all-ZERO CRC, which then matches the all-ZERO CRC part in the decoded block. A CRC pass is then declared for this data block regardless of the fact that the transmitted data has been totally corrupted by noise and/or interference. The result of this false pass can be significant. For voice calls, the receiver passes bad data (i.e., all ZEROs) to the vocoder, which can cause screech on the receiving end when the UE goes into deep fade for up to a 16 frame period (160 ms) before the network makes the decision to disconnect the radio link. For data calls, an all ZERO input can result in a hang-up of the connection, requiring the connection to be reset.
Since the initial state of the CRC generator has been set by the standards to be ZERO and has been implemented in equipment already installed, the initial state of the CRC generator cannot be changed to avoid the problem. A solution is needed, therefore, to avoid false CRC-passes at a NodeB or UE receiver when receiving conditions are weak.